查看原文
其他

机器人操作系统 ROS | 工业百条

Georg Stieler 知识自动化 2019-04-26

【中文词条机器人操作系统

【英文词条】Robot Operating System(ROS)

【词条正解——工业百条】ROS 是一个开源的机器人操作系统,能够集成大规模的不同机器人的通信层,其主要目标是通过知识共享加速机器人的研究和工业应用。它允许个人修改高级外设,如运动控制、感知和路径规划工具等。在ROS 的帮助下,软件开发人员能够方便地模拟机器人的行为,省去了制造或购买实体机器人所需的高昂费用,并通过借助免费开源库中的现有代码来快速构建自己的应用程序场景。在未来,动态的和更具协作性的工业生产环境将使得具有适应性的机器人拥有巨大的市场。


如果没有ROS,就没有最近流行的无人服务、物流机器人、飞行器及自动驾驶,正是机器人操作平台ROS 为这些技术带来了飞速的进步。ROS 并非其字面意义上的操作系统,而更多的是一个中间件,它能够让你根据现有的代码知识构建你的想法,并共享各种模块来解决一些常见问题,从而使机器人更快、更经济、更高效地工作。本文讲述了ROS 自其诞生以来的故事,主要探讨了现有市场玩家对于开源的不同看法,展示了目前相关的实用案例及技术上存在的难点。文章的最后总结了关于这些矛盾如何解决的前景,以及ROS 未来的发展可能性。


别重新发明车轮

ROS 起源于斯坦福人工智能机器人(STAIR),这是一个由Andrew Ng 领头并组织相关研究人员而推出的项目,旨在将多种AI 功能(如视觉、操纵、导航等)整合到单个机器人中。由于大量的重复编程非常浪费时间,这些研究人员想建立一个基于现有资源的某种东西——停止重新发明车轮。STAIR 的与众不同之处在于,人们可以在保持系统整体不变的情况下使用不同的子系统。尽管系统这个概念对于不同的使用者来说是不同的——这是高效使用大批量机器人项目的一个先决条件。


这些斯坦福大学研究人员在募资时,遇到了谷歌出身的企业家斯科特·哈桑(Scott Hassan)。哈桑于2006 年创立了一家机器人技术公司Willow Garage,投入了大量资金。2009 年,这家公司发布了ROS 的第一个源代码开放Beta 版,在第二年发布了正式版。


随后,Willow Garage 加大了公关力度,在各个主流的国际机器人大会上也非常活跃。ROS 社区取得了快速发展,与此同时,ROS 软件包的数量也在快速增长(ROS软件包:具有各种应用项目的软件,如导航)。2011 年和2012 年,ROS 逐渐成为机器人领域的一个巨大炒作话题。Willow Garage 推出了更多基于ROS 的机器人(TurtleBot)。在这个阶段,每隔6 个月就会出现新版本且功能更强大的ROS 系统,代码的质量也在稳步提高。因为没有看到商业化的趋势,当时也有人质疑Willow Garage 关于ROS 的动机。2013 年,斯科特·哈桑并不看好服务机器人能带来的收益,随后从Willow Garage 撤资,并在当年晚些时候关闭了该公司。


开源机器人基金会(OSRF)正式负责接管了ROS 的后续开发。当时负责ROS的团队规模很小,也没有大的投资方参与。凭借着世界各地的开发人员对ROS 的开发和使用所形成的开发者社区,ROS 得以幸存并延续至今。


自2014 年起,ROS 社区发展迅猛

由于技术的持续改进,机器学习取得突破,以及对于灵活且小规模工业应用的需求愈发旺盛,机器人领域从2014 年开始再次得到了学术研究机构和风险投资的重视。


今天,ROS 社区比以往任何时候都更加活跃。它已拥有大约3000 名有积极贡献的活跃社区成员。这些成员来自各个国家,其中大部分来自美国、中国、德国和日本。他们贡献了总计超过450 万行重要的代码,据推测,这相当于169 名全职开发人员8.5 年的工作量。


截至2017 年7 月,根据维基关于ROS 的问答数量,ROS 社区的参与度在一年内大约提高15%。同时wiki.ros.org 网站的编辑和浏览量也上涨了30%。图1展示了可应用于不同场景的软件包逐年下载数量的变化。

图1 软件包下载数量的变化


学术著作《ROS:一个开源的机器人操作系统》的被引用量清晰地展现了社区和ROS 的合作进程,这篇论文由M·Quigley 和斯坦福大学计算机科学系、Willow Garage 和南加州大学计算机科学系在2009 年联合发表。发表至今已逾8 年,但其引用量自2016 年以来激增了40%。


实际中ROS 应用的增长也被相关数据所证实。图2中的数据曲线代表兼容ROS的机器人的数量,展现了ROS 应用的快速增长。

图2 ROS 应用的增长趋势


在中国,ROS 也开始逐渐流行开来。目前从数量上来看,中国用户是访问ROS网站的第二大团体,并且份额正逐渐增加,如图3所示。

图3 各国访问ROS 网站份额对比


ROS 架构中所蕴含的哲学目标

自创立之初,ROS 的架构便是基于由创始人定下的“哲学目标”:

(1)点对点(Peer-to-peer)。

(2)基于工具(Tools-based)。

(3)多语言(Multi-lingual)。

(4)简洁(Thin)。

(5)免费且开源(Free and Open-Source)。

使用ROS 的系统涉及许多在对等拓扑中运行时需要连接的进程。为了防止计算机异构网络溢出中央服务器的流量,ROS 通过缓冲和对等连接在很大程度上缓解了这些风险。创始成员选择了“微内核设计”,即将大型工具拆分成更小的单元,以提高处理复杂机器人环境所需的灵活性和稳定性,但同时效率有所降低。要实现消息的良好交流,语言环境是决定性的因素。因此,ROS 使用一种简单的、与语言无关的接口定义语言(IDL),它自动将所支持的语言标准化为一个通用代码,从而实现“混合和匹配”。为ROS 提倡的“更简单的代码提取”和“没有或几乎没有包装”的外部存储库的应用铺平了道路。因此,不同中间件之间的不兼容性及“独立库”对ROS 的依赖性保持较低。


ROS 成功的关键无疑是开源。无私、无直接经济报酬、致力于公益的想法看起来可能是罕见而天真的。尽管有意识地进行无偿的知识共享、起初的困难很难想象,但这已经被早先成功的Linux 计算机操作系统证明是可行的。被调整过的Linux 正运行着高度复杂和与安全相关的诸多系统,如核电站的控制及如今多达150 万台Android智能手机。


ROS 的倡导者们认为,ROS 的发展也会遵循同样的轨迹。根据OSRF 首席执行官Brian Gerkey 的说法,Linux 在Windows 环境下是一个“蹩脚的暴发户”。而在机器人技术方面,ROS 却是“先行者”。事实上,微软最初试图建立自己的机器人平台——“微软机器人开发工作室”,但最终因为ROS 在这一领域太过强势,微软不得不停止其自主工作室的开发。


工业互联网和深度学习的基础

ROS 还支持分布式系统,在这个系统中数十个进程可以在数台机器上并行运行。一种名为ROSLink 的新协议已经被提出,它结合了搭载ROS 的机器人与物联网,其目标是构建一张包含物理对象、车辆及诸如传感器和制动器之类的其他设备的网络。利用ROS,可以使用精确的物理模拟来测试不同的算法,包括深度学习,而不需要昂贵的硬件投资。ROS 与不同的机器人模拟器兼容,这对于原型设计、新算法验证,以及机器人在不同使用场景和环境下智能行为的培训至关重要。其中最常用的模拟器是Gazebo,它是ROS 的一部分。Gazebo 已被广泛应用于学术界和工业界,以促进机器人从研究阶段到实际应用的发展。


目前使用案例

ROS 的首批应用主要是在移动机器人方面。这些机器人不光用在传统的研究和学术领域,同时在一些创业公司中也可以发现它们的身影:


(1)美国国家航空航天局(NASA):作为太空和航天领域的关键参与者,它选择用廉价和方便的ROS 来开发它的“Swarmie”项目。在这个致力于未来火星任务的关键项目中,NASA 在基于ROS 的简单机器人上模拟蚂蚁的协作行为。


(2)Fetch:很可能是最著名的初创公司,由一帮前Willow Garage 人员创立。它推出了专为物流行业设计的Fetch 机器人系统,以提高仓库效率。它的实验室地面机器人就是基于ROS 界面来实现各种控制器的集成。该公司开发了一种双重方法:用一个小且灵活的采摘机器人——“Fetch”,由一个更大的推车式机器人——“Freight”来支持。通过这种双重方法,将多个物品运输到指定的送货点,也可以加入多个来自不同厂商的机器人来完成。这种相互作用归根结底还是得益于ROS 框架。


此外,还有一个很好的例子:Delft 大学在Amazon Picking Challenge 上大获全胜。他们的胜利来自通过利用ROS来帮助资源有限的年轻研究员们开发先进的解决方案。通过ROS,机器人能够自主地将物品从标准货架上移动到包里,或从包里转移到标准货架上。根据Delft 团队成员Kanter van Deurzen 的说法,他们成功的决定性因素是将“最高标准的各个组成部分”作为与“一体化系统”相结合的“多学科方法”。这种整合的方法是通过使用基于ROS 的软件而实现的。Delft 大学也正在欧盟范围内推动ROS-I 软件组件达到一个更高的水平,这个任务被称作ROSIN。除了Delft 大学,合作机构还包括德国的Fraunhofer 制造工程与自动化研究所和Fachhochschule Aachen大学、哥本哈根IT 大学,以及来自瑞典的机器人公司ABB 和来自西班牙的Tecnalia研究所。


在中国,ROS 为众多新兴的服务机器人公司奠定了基础:

(1)Ecovacs 和iRobot(清洁机器人)。

(2)索亚机器人(迎宾机器人)。


尽管ROS 在中国服务机器人的使用范围很广,但迄今为止,对于ROS 的学术贡献还不大。


值得一提的是,ROS 也被用于自动驾驶。例如,宝马的335 I G 自动驾驶概念,以及百度的Apollo 平台都是基于定制化的ROS。


目前ROS 在工业领域应用相对较少

目前ROS 的工业级使用率远低于学术界或服务机器人领域,主要有以下两个原因。


1

技术方面

工业机器人制造商主要提到了ROS 在实时性和稳定性方面的弱点,以及数据安全问题。这些都可能对制造商产生负面的品牌影响。


ROS 软件的安全性主要取决于早期贡献者的责任感。开发内部软件时,其整个生命周期都需要控制和维护,并需要储存完整的档案。相比之下,开源软件是由松散组织的开发人员开发的,他们相互信任程度较低,对于档案保存的标准也较低。此外,对于使用开源的最终用户来说,与单一制造商或集成商建立合法的双向关系很难,因为他们和开发者之间缺乏有约束力的服务协议。据Fraunhofer 制造工程与自动化研究所(IPA)研究员Theo Jacobs 的说法,除了经过验证的软件版本,解决方案可能是由一小组程序员维护的自包含模块。但通过使用来自主题密钥验证消息的发送者和听众的认证,可能可以确其保机密性。


一些专家也担心,ROS 从未被设计用于工业机器人的传统典型应用,例如喷涂,点焊或弧焊。例如,大多数工业机器人软件都可以调整焊机上的电压和电流通道,以确保达到最佳效果——这不属于ROS 的范畴。然而,通过ROS 可以更容易找到一些新的解决方案,例如:如果工程师想要喷涂出一个之前机器人从未见过的几何图形,ROS 可以相对容易地为搭载有工业视觉的喷涂机器人生成相应路径。


2

经济方面

主要的行业参与者担心其业务模式被淡化。开放自己投入了大量研发资源所获得的核心知识并非是他们所愿意的。他们所特有的硬件可能会失去其优势,并且可能被其他更便宜的硬件轻松替换,而这些便宜的硬件还可以通过ROS 来增强外设。


在一定程度上,可以将这种困境与苹果的iOS 和Google 的Android 所采取的做法类比:


(1)苹果对App Store 始终保持相对严格的控制,并且一直是iOS 终端设备的唯一硬件供应商。这有助于建立一个快速、稳定和相对安全的系统。其用户群通常会非常快速地更新软件,从而能够更容易地修复错误和解决安全问题。缺点是用户基数较小,未来能为机器学习提供的数据较少。


(2)相比之下,Android 采取了一种相当开放的方式,这带来了更广的用户群体,并且这些用户群体可以从各种终端设备中进行选择。但是,这是以反复出现的接口问题为代价的,并且终端设备和软件之间会存在适配错误。设备分化和从第三方安装应用程序使得Android 操作系统易受安全问题的困扰。高度的设备分化也使得Android系统的维护和缺陷修复比iOS 更困难。


到目前为止,苹果控制其平台的模式非常成功。与20 世纪90 年代Macintosh 不同的是,现今广大的iOS 用户使得这种模式为苹果带来颇丰的收益。与此同时,几乎没有一家专注于Android 生态系统的硬件公司能够长期盈利。


那为什么工业机器人制造商们要开放他们的平台,并提供他们产品控制系统的接口呢?


不同机器人制造商对这个问题的看法存在分歧。发那科和库卡系统相对来说比较封闭,其他厂商则采取更加开放的态度:


(1)尽管对通过ROS 提供自由的第三方访问也存在着一些担忧,但Yaskawa Motoman 通过高级外设,利用他们的机器人的潜力推动了它早期开源的行动,特别是双臂机器人在自动化装配任务中的使用日益增加。Motoman 认为,搭建一座与他人之间的桥梁将提高互操作性,并从而吸引更多客户。


(2)类似的是,作为ROS-I 项目的一部分,工业机器人巨头ABB 为其协作组装机器人Yumi 开放了ROS 接口。


关于Motoman SIA20D、ABB 的YuMi 和Universal Robots UR5 等小型机器人,它们不再进行昂贵的研发过程,而是直接使用3D 感知工具来增强其功能。在不久的将来,为特定需求而编写的软件将随着业界需求从高容量、可重复的流程转变为结合了动态轨迹算法和传感器的智能机器人而变得更有实际价值。


Bosch 的研发部门开始允许他们的工程师“快速、方便地对其系统进行可视化、检查、记录和模拟”,以便创造更大的效益,这展现了ROS 的另一个机会。前Bosch研究员现任Mayfield Robotics 的联合创始人兼首席运 .官Sarah Ostentoski 认为,以这种方式使用ROS,将使它成为一种“双向流动的管道”,公司愿意与社区分享他们的进步,社区也可以凭借它在学术系统中的流行度帮助公司网罗更多ROS 方面的人才。


更大的惊喜在更远的将来

ROS 在过去的几年中增长迅猛,并且在可预见的未来几年中将发挥更重要的作用。


首先是日益增长的服务机器人公司的需求。在接下来的十年里,我们将会看到第一辆自动驾驶汽车成功上路。届时将会出现一批我们今天无法设想的机器人和应用程序。正如Willow Garage 最早成员之一Tully Foote 在2007 年年末承诺的那样,在未来,“你将能够使用任何开源软件,只需结合你的商业模式做一些小小的改动,就能开启你的创业之旅”。ROS 社区的发展将前所未有地使有创意的设计师和创业者们站在巨人的肩膀上。


其次,工业市场上的应用也将越来越多。然而目前,对于ROS 仍然有限的工作能力和是否应该放弃传统的成功商业模式,工业机器人制造商们仍持有一定理性的顾虑。不过,与此同时,ROS 正在以相对简单的方式来灵活设计解决方案,以此拓展整个行业的边界。


在此背景下,ROS-Industrial Consortium 已经向前迈进了一步。这个机构由付费会员组成,其中大多数是大型工业企业,它们正在投入知识和资金,以加大机器人的能力范围并提高质量。这其中的重点是用资本来引导研究重点,这样可以更加有效并且公平地分配资源,并最终分享结果。虽然进入这一协会的资本壁垒与开源社区的原则相矛盾,但是它是独立开发者的试错运动和企业在参与开源扩张的同时又能保证自身原有利益之间的一种妥协,所有高昂的研发费用都是为了整个行业的共同利益。通过所谓的聚焦技术项目(FTP),这个行业的蛋糕需要先被做大,即便需要付费成员来决定其味道。


最后,备受瞩目的ROS 2.0 的Beta 版本正在测试当中。它应该解决现有的安全问题,并提高适用于大型项目的技术能力。实际上,这个版本是为了应对“非理想网络”和现实中的生产环境而建立的,它使得在ROS 中进行实时控制的进程和机器间能够直接通信。对于ROS 1.0 在意料之外、情理之中的走红,其后继者应该为静态配置提供清晰的模式和支持配置,从而扩大在工业领域中所占的一席之地。

新书推荐

本词条“机器人操作系统”已经入选由林雪萍、赵敏、宁振波、黄昌夏等老师编著的《智能制造术语解读》一书,该书在京东、亚马逊等各大网店已经上架,欢迎关注。

相关阅读:

八字诀搞清智能制造体系 

企业架构 | 工业百条

作者简介

作 者

Georg Friedrich Stieler :德国STM 咨询公司上海分公司执行董事

编 审

林雪萍:南山工业书院发起人,北京联讯动力咨询公司总经理

喜欢这篇文章?请关注,并分享

为方便查看,可应用公众号置顶功能

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存